iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0

昨天我們講解了如何 import 和 export 一個 modules,這時候你心中應該會有一個疑問,那如果假設這個 counter 檔案裡面有不同的東西,而我們也想一起使用他們呢?像下面的例子,我們又再多加了兩個變數adderpi,並且為了不要跟昨天混淆,將檔名改成 stuff.js:

let counter = function(arr){
  return `There are ${arr.length} elements in this array` ;
  }
  
let adder = function(a, b){
  return `The sum of 2 numbers are ${a + b}`
  }
  
let pi = 3.14

事實上,這個module.exports 其實就是一個空的物件,我們可以用新增屬性的方式把這個 module 裡的變數一個一個加進去:


let counter = function(arr){
  return `There are ${arr.length} elements in this array` ;
  }
let adder = function(a, b){
  return `The sum of 2 numbers are ${a + b}`
  }
let pi = 3.14

module.exports.counter = counter
module.exports.adder = adder
module.exports.pi = pi

然後在 app.js import出來使用:

const stuff = require('./stuff')

console.log(stuff.counter([1,2,3,4,5])) // There are 6 elements in this array
console.log(stuff.adder(5,8)) // The sum of 2 numbers are 13
console.log(stuff.adder(stuff.pi, 5)) // The sum of 2 numbers are 8.14

除此之外,我們還有其他兩種 export 方法:
法1:賦值直接加入 module.exports 的屬性中:

module.exports.counter = function(arr){
  return `There are ${arr.length} elements in this array` ;
  }
module.exports.adder = function(a, b){
  return `The sum of 2 numbers are ${a + b}`
  }
module.exports.pi = 3.14

法2:使用物件

let counter = function(arr){
  return `There are ${arr.length} elements in this array` ;
  }
let adder = function(a, b){
  return `The sum of 2 numbers are ${a + b}`
  }
let pi = 3.14
module.exports = {
  counter: counter,
  adder: adder,
  pi: pi
 }

之後一樣是用 const stuff = require('./stuff') import
透過 stuff.<屬性名稱> 的方式去取用

今天的 Module Patterns 就到此為止啦!
我們明天見
ㄅㄅ


上一篇
#5 -Modules and require()
下一篇
#7 - The Node Event Emitter
系列文
你遲早都要懂後端的 — Node.js 的學習筆記10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言